This application claims priority to GB Application No. 1103891.6 filed Mar. 8, 2011, the entire contents of which are incorporated herein by reference.
1. Field of the Invention
This invention relates to the field of data processing systems. More particularly, this invention relates to the selection of which data processing operations to support with program instructions within a data processing system.
2. Description of the Prior Art
It is known to provide data processing systems which operate under the control of program instructions. The program instructions are decoded by decoder circuitry to generate control signals. These control signals control the processing circuitry to perform data processing operations specified by those program instructions. An important aspect of data processing system design is the selection of which program instructions to support within a data processing apparatus. This selection is particularly important in the field of reduced instruction set computing (RISC) which is characterised by the native support of relatively few program instructions, but with each of these program instructions being able to execute rapidly and efficiently.
It is known to manipulate operand values of different bit sizes within a data processing system. For example, operands to be manipulated may be of a word length (32-bits), a double word length (64 bits), a half word length (16 bits) or a byte length (8 bits). Other operand widths are also possible. It is generally more efficient to use an operand size which is not too large for the typical values of the operand to be stored. It is wasteful of storage resources and energy to manipulate operands in, for example, the form of double words when the operand values are such that they can be fully represented as operands having a length of one byte.
A problem arises when it is desired to perform a data processing operation upon values which are stored within operands of different operand sizes. One way of dealing with this is to provide size conversion instructions which when executed change an operand of a first operand size to an operand of a second operand size, the second operand size being different to the first operand size. Once the two values to be manipulated have been placed into operands having the same operand size, then a data processing instruction which uses those operands as inputs may then be executed.